#ifndef RECURSION_H
#define RECURSION_H
#include <iostream>

using namespace std;
class Recursion
{
public:
    Recursion();
    ~Recursion(){}

private:

public:
    /* 爬台阶问题
       问题描述：一个人爬楼梯，每次只能爬1个或2个台阶，假设有n个台阶，那么这个人有多少种不同的爬楼梯方法？
    */
    int one_two_step_recursive(int n)
    {
        if(n == 1) return 1;
        if(n == 2) return 2;
        return one_two_step_recursive(n-1)+one_two_step_recursive(n-2);
    }

    int one_two_step_nonrecursive(int n)
    {
        int ret = 1;
        for (int i = 2;i <=n; i++) {
            ret = ret + 1;
        }
        return ret;
    }

};

void testRecursion();


#endif // RECURSION_H
